package com.skyd.core.android.game;

import com.skyd.core.vector.Vector2DF;

/**
 * 缓冲的二维向量步进变化运动，不支持循环和持续时间设置
 * @author SkyD
 *
 */
public class GameVector2DFBufferStepMotion extends GameVector2DFStepMotion {

	public GameVector2DFBufferStepMotion(float stepLength,
			Vector2DF targetPosition, float buffer,
			IGameValueDuct<GameObject, Vector2DF> valueDuct) {
		super(stepLength, targetPosition, valueDuct);
	}	

	@Override
	protected void updateSelf(GameObject obj) {
		super.updateSelf(obj);
		setStepLength(getStepLength()*(1-getLessenBuffer()));
	}

	/**
	 * 初始值为0。 功能注释：递减百分比
	 */
	private float _LessenBuffer = 0;

	/**
	 * 获取LessenBuffer。 功能注释：递减百分比
	 * 
	 * @return 当前的float类型的值
	 */
	public float getLessenBuffer() {
		return _LessenBuffer;
	}

	/**
	 * 设置LessenBuffer。 功能注释：递减百分比
	 * 
	 * @param value
	 *            要设置的float类型值
	 */
	public void setLessenBuffer(float value) {
		_LessenBuffer = value;
	}

	/**
	 * 设置LessenBuffer为其默认值(0)。 功能注释：递减百分比
	 */
	public void setLessenBufferToDefault() {
		setLessenBuffer(0);
	}
}
